package com.koron.css2.serviceManage.mapper;

import com.koron.css2.serviceManage.bean.SysModuleBean;
import org.apache.ibatis.annotations.Param;
import org.koron.ebs.mybatis.EnvSource;

import java.util.List;
/**
 * 功能模块表服务
 * @author Zhuoyanxu
 *
 */
@EnvSource("_default")
public interface SysModuleMapper {
	/**
	 * 通过code,level获得所有code下的同级节点
	 * @param sysModuleBean
	 * @return
	 */
	List<SysModuleBean> selectSysModuleNode(SysModuleBean sysModuleBean);
	SysModuleBean selectSysModuByUrl(String pageAddr);
	/**
	 * 获取全部列表
	 * @return
	 */
	List<SysModuleBean> selectSysModule(SysModuleBean sysModuleBean);
	/**
	 * 获取用户的菜单列表
	 * @return
	 */
	List<SysModuleBean> selectSysModuleForMenu(SysModuleBean sysModuleBean);
	/**
	 * 获取ModuleCode的最大值
	 * @return
	 */
	String selectMaxModuleCode(String code);
	/**
	 * 统计
	 * @return
	 */
	SysModuleBean calSysModule(SysModuleBean sysModuleBean);
	/**
	 * 通过Code获取模块
	 * @param Code
	 * @return
	 */
	SysModuleBean getSysMonduleByCode(String Code);
	/**
	 * 通过id获取模块
	 * @param id
	 * @return
	 */
	SysModuleBean getSysMonduleById(String id);
	/**
	 * 添加模块
	 * @param sysModuleBean
	 * @return
	 */
	Integer insertSysModule(SysModuleBean sysModuleBean);
	/**
	 * 更新模块
	 * @param sysModuleBean
	 * @return
	 */
	Integer updateSysMondule(SysModuleBean sysModuleBean);
	/**
	 * 给所有管理员角色，赋予该模块的全部操作权限
	 * @param moduleId
	 * @return
	 */
	Integer insertRoleModule(Integer moduleId);

	Integer selectSysModuleByLoginNameAndModuleCode(@Param("loginName") String loginName,@Param("moduleId")  String moduleId);

}